System and Method of Generating Verification Code

ABSTRACT

The present disclosure provides techniques for redrawing a new diagram authentication code. An existing diagram authentication code and a rendering style configuration file are retrieved, and a plurality of original contexts are generated based on configuration information from the rendering style configuration file. The plurality of original contexts are analyzed with a predefined checking rule defining at least one prohibited combination of at least two of the plurality of original contexts, and at least one required context is generated based on analyzing the plurality original contexts with the predefined checking rule. A new diagram authentication code is then redrawn based on the generation of the at least one required context.

CROSS REFERENCE TO RELATED PATENT APPLICATIONS

This application claims priority to Chinese Patent Application No.201210387390.3, filed on Oct. 12, 2012, entitled “System and Method ofGenerating Verification Code,” and U.S. application Ser. No. 14/052,491,filed Oct. 11, 2013, entitled “System and Method of GeneratingVerification Code,” which is hereby incorporated by reference in itsentirety.

TECHNICAL FIELD

The present disclosure relates to a networking field, and moreparticularly to generating authentication code for network security.

BACKGROUND

With the popularity of computers and the advance of networkingtechnology, the Internet touches every corner of our daily life. Thedevelopment of the Internet not only brings us a convenience, but alsobrings s variety of challenges as well. Some malicious users may userobot programs to massively occupy Internet resources, such as sendingspam mail or a massive attack. To avoid such malicious behaviors, aserver is usually configured to have a program tool that canautomatically indentify a user as a malicious user or a goodwill user toreduce a risk of malicious attack on the server.

A diagram authentication code is a program tool that is used forindentifying an Internet user as a goodwill user or a malicious user.The diagram authentication code is a diagram including words by which auser is requested to answer. Once a user can correctly answer, he/shewill be regarded as a goodwill user and will be allowed to proceed tothe next operations.

Regarding the conventional authentication code generating system, itgenerally pre-generates an authentication library including enormousauthentication code diagrams. For every submission of authenticationrequest, the system will pick up one authentication code diagram fromthe authentication library. However, there is only one diagramdisplaying mode for displaying the conventional authentication code bywhich it only displays words and a single-color background. Recently,related anti-crack mechanisms have been added, such as adding ofbackground or adding of noise lines. However, some mechanisms may causebad user experience because, for example, they add too many impropernoise lines.

In addition, the form of the conventional authentication code isnon-adjustable or the adjustment is not flexible. Accordingly, the formcannot be effectively adjusted timely during a malicious attack. Withthe increment of on-lining operations, the conventional authenticationcode is relatively easily cracked. This causes risks and defects fornetwork security.

SUMMARY

The present disclosure provides methods and systems for generating anauthentication code to improve network security. In some embodiments,the authentication code may include a diagram, a noise element, andwords content, a context message that are associated with individualmodules.

Embodiments of the present disclosure related to a system for generatingan authentication code generating to improve network security. Thesystem may include a context generating module, a random word generatingmodule, a background generating module, a font registering module, aletter paint module, a logo paint module and a noise paint module.

In some embodiments, the context generating module generates a pluralityof contexts corresponding to each module based on a configuration fileof rendering style. The random word generating module randomly generatesa word from a word library based on a corresponding context, wherein theword library may include at least one of an English letter, an Arabicnumber, and a symbol. The background generating module generates abackground diagram based on a corresponding context, and assigns a sizeof background diagram based on the configuration file of a renderingstyle. The font registering module defines a font of the word based on acorresponding context. The letter paint module draws the word using itsfont based on a corresponding context. The logo paint module chooses alogo based on the configuration file of rendering style, and draws thelogo based on a corresponding context. The noise paint module chooses anoise based on the configuration file of a rendering style, and drawsthe noise based on a corresponding context.

The embodiments of the present disclosure also relate to a method forgenerating an authentication code to enhance the difficulty of crackingthe authentication code and to improve the network security. The methodmay include generating, by a computing device, a plurality of contextsbased on configuration information of rendering styles. Each context iscorresponding to one kind of diagram style configuration ofauthentication code. The configuration information of a rendering styleis configured by a user or is pre-configured by a networking server. Thecomputing device may also define an executing sequence of the contextbased on a predetermined algorithm rule, and execute the drawing ofdiagram authentication code of a context based on the executing sequenceof the context.

The embodiments of the present disclosure also relate to a method forgenerating an authentication code that executes a reprocess in relationto an existing authentication code to enhance difficulty in cracking theauthentication code. The method may include retrieving, by a computingdevice, a diagram authentication code and configuration information of arendering style. The configuration information of a rendering style isconfigured by a user or is pre-configured by a networking server. Thecomputing device generates an original context based on the diagramauthentication code, and analyzes the original context based on theconfiguration information of the rendering style to generate therequired context. Then, the computing device may redraw a new diagramauthentication code based on the context and the original context.

As compared with the conventional technology, the present disclosure hasadvantages. For example, the rendering process for authentication codeis more flexible, and is variable by employing different renderingstrategies based on different environments. The authentication code canbe generated by dynamically combining the modules and the executingsequence thereof based on different demands to enhance the ability ofpreventing malicious behaviors. Because all modules are adjustable withdifferent strategies in accordance with the corresponding context fromwhich the strategy is selected based on a user's experience, a userexperiences a more comfortable authentication code rendering process. Inrendering process, strategies can not only be configured by a user, butalso be automatically selected based on the context of diagraminformation in the current phase. This supports a creation of renderingand a reuse of rendering with respect to the existing diagram.Certainly, it is not necessary for a product of the present disclosurepossessing all benefits as mentioned above at the same time.

This Summary is not intended to identify all key features or essentialfeatures of the claimed subject matter, nor is it intended to be usedalone as an aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings described herein are used as a part of thepresent disclosure for better understanding the technical solutions ofthe present disclosure. The embodiments of the present disclosure in thefollowing description are used for describing the embodiments moreclearly but not for limiting the present disclosure.

FIG. 1 is a schematic diagram illustrating an authentication codegenerating system.

FIG. 2 is a flowchart illustrating a process for generating anauthentication code.

FIG. 3 is a flowchart illustrating another process associated with theprocess of FIG. 2.

FIG. 4 is a flowchart illustrating a process for generating anauthentication code.

FIG. 5 is a flowchart illustrating a process for generating anauthentication code.

DETAILED DESCRIPTION

The implementation of the present disclosure will be fully described inthe following description by the accompanying embodiments and thedrawings of the present disclosure. In view of the present disclosure,one of ordinary skill can thus fully understand the implementingprocesses with regard to how the technical solution of the presentdisclosure is applied for solving the prior technical problem and forachieving the technical efficiency.

An embodiment of the present disclosure provides a solution ofcomponentizing a diagram, a noise element and the words content of anauthentication code generating system as several modules, and furtheradding a context message in each module to solve the problem that theconventional authentication code diagram is easy to be cracked.

FIG. 1 is a schematic diagram illustrating an authentication codegenerating system. The computing device 100 may be a user device or aserver for generating an authentication code. In one exemplaryconfiguration, the computing device 100 includes one or more processors102, input/output interfaces 104, network interface 106, and memory 108.

The memory 108 may include computer-readable media in the form ofvolatile memory, such as random-access memory (RAM) and/or non-volatilememory, such as read only memory (ROM) or flash RAM. The memory 108 isan example of computer-readable media.

Computer-readable media includes volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules, or other data. Examples of computer storagemedia include, but are not limited to, phase change memory (PRAM),static random-access memory (SRAM), dynamic random-access memory (DRAM),other types of random-access memory (RAM), read-only memory (ROM),electrically erasable programmable read-only memory (EEPROM), flashmemory or other memory technology, compact disk read-only memory(CD-ROM), digital versatile disks (DVD) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other non-transmission medium that maybe used to store information for access by a computing device. Asdefined herein, computer-readable media does not include transitorymedia such as modulated data signals and carrier waves.

Turning to the memory 108 in more detail, the memory 108 may include acontext generating module 110, a random word generating module 112, afont registering module 114, a letter paint module 116, a backgroundgenerating module 118, a logo paint module 120, a noise paint module122, and a checking module 128.

The context generating module 110 generates a plurality of contextcorresponding to a module of the system 100 based on a configurationfile of rendering style 124. The configuration file of rendering style124 includes configuration information of rendering style. Theconfiguration information of rendering style may include a parameter, atime, a step and a status for executing each module. The configurationinformation of rendering style may be either configured by a userthrough a user interface or pre-configured by the system 100.

When the context generating module 110 generates a plurality of contextcorresponding to each module, the module required for drawing diagramauthentication code is determined based on the configuration informationof rendering style, wherein the term “context” used here is defined as acorresponding context corresponding to the each module, which will notbe extra explained hereinafter.

The random word generating module 112 randomly generates a word from aword library 126 based on a corresponding context, in which the wordlibrary 126 include at least one of one English letter, one Arabicnumber, and one symbol. In particular, the English letter may be thecombination of 52 upper and lower cases of A, B, C, . . . , x, y, z, andbe combined with the Arabic numbers 0-9.

The background generating module 118 generates a background diagrambased on a corresponding context, and assigns a size of backgrounddiagram based on the configuration file of rendering style. If the sizeof background diagram is not assigned, then a defaulted sizepre-configured by the generating system will be assigned as the size ofbackground diagram.

The font registering module 114 defines a font of the word based on acorresponding context. If there is not a defined font, a defaulted fontpre-configured by the system 100 will be used.

The letter paint module 116 draws a letter with the font defined by thefont registering module 114 on the background diagram based on acorresponding context as mentioned above. The letter paint module 116 isperformed by a letter deformation during the drawing. The letterdeformation may include a rigidity change such as rotating ortranslating, and/or non-linear change such as scaling or skewing. Theletter deformation may result in different effects of the authenticationcode with respect to different fonts. Similarly, one font that appliesdifferent letter deformations may also result in different effects ofthe authentication code. The different effects may be determined by thecontext generating module 110 depending on the configuration informationof rendering style and a corresponding context.

The logo paint module 120 chooses a logo based on the configuration fileof rendering style 124 to thus draw the logo on the background diagrambased on a corresponding context. The rendering in relation to the logodrawing will increase difficulty of reading for robot programs. However,the rendering would not confuse a goodwill user but will increase theidentification service that is provided.

The noise paint module 122 chooses a noise based on the configurationfile of rendering style 124 to thus draw the noise on the backgrounddiagram based on a corresponding context. The noise includes partialnoise such as a snowflake, a texture noise such as a water ripple, abreaking process or a curve line noise such as a Bezier curve, etc.

The checking module 128 checks the accomplished diagram authenticationcode based on a checking rule. The checking module 128 may restart aconfiguration of the context for the corresponding module based on achecking result to generating a new diagram authentication code. Theprinciple of checking rule ensures that the authentication code isreadable by human eyes rather than robot programs. In some embodiments,the system 100 of the present disclosure may be implemented tomodularize drawing processes of the diagram authentication code; so ifthe drawn diagram authentication code does not match with the checkingrule, the corresponding module can be called to modify the diagramauthentication code. Accordingly, the drawing of the diagramauthentication code is more user-friendly and is more diverse.

For example, if the drawn letter is found by the checking module 128that the length of background is smaller than the size of lettergenerated by the letter paint module 116, the checking module 128 willcall the context generating module 110 to restart to configure acorresponding context of letter paint module 116 or configure thebackground generating module 118 to match the size of background withthe letter.

In another example, if the checking module 128 finds that the size ofthe noise is smaller than the size of the letter generated by the letterpaint module 116, it is determined that the letter cannot be covered bythe noise and the generated authentication code may be readable by arobot program. Accordingly, the checking module 128 will call thecontext generating module 110 to reconfigure a corresponding context ofletter paint module 116, and/or a corresponding context of the noisepaint module 122 to match the size of noise with that of the letter.

For another example, when the font registering module 114 is used forregistering a specific font, the letter drawn by the letter paint module116 may be hardly recognized by human eyes, or may be easy to bemistakenly recognized. Therefore, the combination of these kinds offonts and letters should be avoided using a predetermined configurationthat excludes this combination in checking rule. When the checkingmodule 128 finds this kind of combination of the font and letter, thechecking module 128 will call the context generating module 110 toreconfigure a corresponding context of the font registering module 114or a corresponding context of the letter paint module 116 to change theletter and/or the font for preventing the combination.

For another example, when the background diagram is generated by thebackground generating module 118, a color or design of the lettergenerated by the letter paint module 116 and a background diagram mayresult in a difficult reorganization by human eyes or a wrongreorganization, or may cause a confusion for human eyes. The combinationof the background diagram and the letter with respect to the color anddesign should be avoided using a predetermined configuration thatexcludes this combination in a checking rule. If the combination of thebackground diagram and the letter with respect to color and design isfound, the checking module 128 will call the context generating module110 to reconfigure a corresponding context of the background generatingmodule 118 or a corresponding context of the letter paint module 116 bychanging the letter and/or the background diagram to prevent theoccurrence of the combination.

It should be noted that the configuration information of a renderingstyle includes parameters, time, steps, and statuses for executing eachmodule. As a result, when the diagram authentication code is drawn, eachmodule in the generating system can be processed by an infiniteiteration of a single step, a combination of branches, or a parallelmerge. In these instances, the corresponding steps can be adjusted andselected to bring good effect for the expansibility of the system, andthe new module can be added in the subsequent extension.

In the rendering process, each module is stored with a correspondingcontext corresponding to the parameter of the module, and the parameterand the operation of the current step will be determined based on acorresponding context message of the previous step. The context providesa description and a position characteristic description with betterrobustness, and each module draws a rendering effect on the diagramauthentication code based on the context message of the previous step.This prevents confusing diagram rendering effects and provides ahuman-friendly authentication code while still keeping the strength ofthe complexity for the diagram authentication code. The conventionalrendering method employs the scheme of randomly selecting the renderingeffect, and therefore may generate an authentication code that isdifficult for a human user to recognize.

In sum, the present disclosure provides an authentication codegenerating system by modularizing the combined diagram authenticationcode generation as several modules in a manner that a context is addedin each module by dynamically combining the modules and the executingsequence thereof based on different demands. Furthermore, because thesemodules are adjustable with respect to different strategies inaccordance with the corresponding context, in which the strategy isselected based on a user's experience. Therefore, a user experiences amore comfortable authentication code rendering provided by the system100.

The present disclosure also relates to a method for generating anauthentication code to improve network security. The method may beapplied to an authentication code generating system associated with anetworking server. FIG. 2 is a flowchart illustrating a process forgenerating an authentication code. At 202, a computing device maygenerate a plurality of contexts based on configuration information of arendering style, each context corresponding to one kind of diagram styleconfiguration of authentication code. In some embodiments, theconfiguration information of a rendering style may be configured by auser or is pre-configured by a networking server.

At 204, the computing device may define an executing sequence of thecontext based on a predetermined algorithm rule, and execute the drawingof diagram authentication code of the context based on the executingsequence of the context.

The configuration information of a rendering style comprises referenceinformation required as parameters, time, procedures and statuses forgenerating the plurality contexts at 202. The configuration informationof a rendering style may be either personally configured by a userthrough a user interface or pre-configured by the computing device. Themethod may be executed in combination of hardware and software by meansof a program of Java and JavaScript languages.

FIG. 3 is a flowchart illustrating another process associated with theprocess of FIG. 2. At 302, the computing device may randomly generate aword from a word library based on the context. The word library mayinclude at least one of an English letter, an Arabic number, or asymbol.

At 304, the computing device may generate a background diagram based onthe context, and assign a size of background diagram based on theconfiguration file of a rendering style. At 306, the computing devicemay define a font of the word based on the context. At 308, thecomputing device may draw the letter, with the defined font, on thebackground diagram based on the context. At 310, the computing devicemay choose a logo based on the configuration file of the renderingstyle, and draw the logo based on the context. At 312, the computingdevice may then choose a noise based on the configuration file of therendering style, and draw the noise based on the context.

It should be noted that the executing sequence of the context is firstlygenerating a word (the step 302), then generating a background diagram(the step 304), and then determining a form of the word that isdisplayed in a diagram authentication code (the step 306 and the step308), and finally generating the logo (the step 310) and the noise (thestep 312). Persons with ordinary skill in the art should understand thatthe steps from 302 to the 312 of the embodiments are capable of beingexecuted in a different sequence or by deleting or omitting one stepbased on configuration information of rendering style.

The embodiments of the present disclosure also relate to a method forgenerating an authentication code that executes a reprocess in relationto an existing diagram authentication code to enhance the difficulty ofcracking the diagram authentication code. FIG. 4 is a flowchartillustrating a process for generating an authentication code. At 402, acomputing device may retrieve a diagram authentication code andconfiguration information of a rendering style wherein the allocationinformation of the rendering style is configured by a user or ispre-configured by a networking user. At 404, the computing device maygenerate an original context based on the diagram authentication code.At 406, the computing device may analyze the original context based onthe configuration information of the rendering style to generate therequired context. At 408, the computing device may draw a new diagramauthentication code based on the required context and the originalcontext.

In some embodiments, when a server finds that a user fails to responseto authentication for a predetermined number of times, the server willdetermine that the user is a malicious user. The server will recall thediagram authentication code that has been generated, analyze theoriginal context based on the recalled diagram authentication code, andexecute a process, such as adding a new kind of noise in relation to therecalled diagram authentication code. The added noise will disturb thejudgment of a robot program to enhance the difficulty of cracking thediagram authentication code.

Furthermore, to enable the diagram authentication code to be more userfriendly and let the drawn diagram authentication code be more diverseas well, the present disclosure further provides a method for generatingan authentication code to ensure that the authentication code isreadable by human eyes rather than the robot program. The method mayexecute a process of checking the accomplished diagram authenticationcode. FIG. 5 is a flowchart illustrating a process for generating anauthentication code. At 502, a computing device may check the diagramauthentication code. At 504, the computing device may determine whetherthe diagram authentication code meets the predefined rule. At 506, thecomputing device may not process a modification of the diagramauthentication code if it is found to meet the checking rule. At 508,the computing device may restart a process of configuration with respectto the context that is needed to be modified and redraw a new diagramauthentication code if it fails to meet the checking rule.

In some embodiments, the computing device may reconfigure the context toenable the background to match with the letter in size if the backgroundis too small to include the drawn letter. Moreover, after the letter isdrawn, if the size of the noise is found to be smaller than the size ofthe letter, then some elements of the context is reconfigured forredrawing the authentication code in a way that the noise and the lettermatches in size. Further, in response to a determination that a user maynot be able to recognize a letter drawn in a certain font, the contextmay be reconfigured by change at least one of the letter or the certainfont such that the combination of the letter and the certain font willbe avoid.

Furthermore, it may be found that a specific background drawn withletters having similar colors or designs may be difficult to recognizeby human eyes or may cause a mistaken recognition, or that thecombination of the colors and design may cause a mistaken recognition byhuman eyes in spite of the colors and patterns not being similar to eachother. In these instances, the method of the present disclosure willpre-configure a collection of a improper combination of the backgrounddiagram and the letter with respect to colours and designs. If theimproper combination of the background diagram and the letter withrespect to color and design is found, the context will be reconfiguredto prevent the occurrence of this kind of combination.

In some embodiments, a mechanism of the context based on two examples ofthe present disclosure is described as following exemplary algorithm 1.

Algorithm 1 public Captcha paint(String calledKey, Captcha root)   throws ClassNotFoundException, InstantiationException,IllegalAccessException, PaintException {   String cls = (String)root.getConf( ).get(calledKey, String.class); String caller =sun.reflect.Reflection.getcallerClass(2).getName( ); If (cls !=null&&!””.equals(cls)){   Class clazz= Class.forName(cls);   ImageInterfaceimage = (ImageInterface) clazz.newInstance( );  Captcha sub = image.paint (ContextMachine.createContext(root,clazz));  ContextMachine.reduceContext(root, sub, caller);root.setImage(sub.getImage( ));  }  return root; } public Captcha paint(Object callingObject, Captcha root)   throws PaintException {ImageInterface image = (ImageInterface) callingObject; Captcha sub =image.paint(root); return sub; }

The main program, called “root”, generates a context, called “sub”, byContextMachine.createContext function, and assigns a rendering module todraw, called “paint”, by context (sub). After the paint is finished,data information that is executed by the current module is obtained, andis stored in the context, called “sub”, and then the context, i.e., thesub, is returned to the main program, called “the root”, byContextMachine.reduceContext function to combine an executed data sum ofthe current module. The following code is an example of drawing a noiseline (algorithm 2).

Algorithm 2 public Captcha paint(Captcha input) throws PaintException { BufferedImage bi = input.getImage( ); int width = bi.getWidth( ); intheight = bi.getHeight( ); Graphics g = bi.getGraphics( ); int lineCount= (Integer) input.getConf( ).get(“linecount”,   Integer.class); intlineWidthRandom = (Integer) input.getConf( ).get(“linewidthrandom”,  Integer.class); Color color = new ColorUtil( ).getColor(input);g.setColor(color); CaptchaLog log = new CaptchaLog(input);log.log(“noisecolor”, Integer.toHexString(color.getRGB( )));log.log(“noisecolor:red”, color.getRed( )); log.log(“noisecolor:green”,color.getGreen( )); log.log(“noisecolor:blue”, color.getBlue( ));for(int i = 0; i<lineCount; i++ ){  int x = RandomUtil.getInstance().nextInt(width); int y = RandomUtil.getInstance( ).nextInt(height); intxl = RandomUtil.getInstance( ).nextInt(lineWidthRandom); int yl =RandomUtil.getInstance( ).nextInt(lineWidthRandom); g.drawLine(x, y,x+xl, y+yl); } return input;

As illustrated in algorithm 2, a width that is called “width”, a heightthat is called “height” and a back diagram that is called “g” of aninputted diagram which is stored after the previous operation isaccomplished. In some embodiments, the computing device may obtain anumber (linecount) and a thickness (linewidthrandom) of noise lines, andoutputting the context to a color module, and then obtain a color itemwhich is configured and stored by the color module. Then, the computingdevice may draw the noise line (g.drawline) on the background diagrambased on the number, the thickness and the colors of noise lines. Afterrendering, the computing device may return the background diagram drawnwith the noise line to the context input for the storage.

It should be noted that the difference information is also recorded inthe context to facilitate the determination of rendering for thesequential rendering. Even the same module is used, and there are somefactors that may cause different rendering results, such as randomvalues in which some random values will cause a bad diagram effect, forexample, an unclear diagram or a diagram that is easy to crack. Based onthe effect of the recorded values for the corresponding diagrams, itthus allows elements to be optimized by means of statistical analysis.This is an upgrading iterative process, and the values corresponding tothe diagrams are difference information.

By means of the above examples, the context has two functions. In someembodiments, the rendering module is adjusted based on strategies basedon the context to ensure that a combination and a sequence of themodules are dynamically adjustable; secondly, the context can record andstore the data result of the rendering operation which is accomplishedin the current step, and after the current rendering step isaccomplished, the context can directly output the data result of thecurrent step to the next step while the next rendering is called by thecontext.

The present disclosure may be applied in one or more computer readablestorage mediums including a computer accessible program code, such as ahard disk storage medium, a CD-ROM, and an optical storage medium.

The above description illustrates preferred embodiments of the presentdisclosure, but as previously mentioned, it should be understood theabove embodiments are not for limiting the present disclosure orexcluding other embodiments, so the present disclosure may be used invarious other combinations, modifications, and environments, and iscapable of being altered by the above teachings, technology or knowledgeof related fields based on the scope of the present disclosure.Therefore, a person skilled in the art may make various modifications tothe present disclosure. Those modifications still fall within the spiritand scope defined by the appended claims.

1-15. (canceled)
 16. One or more computer-readable media storingcomputer-executable instructions that, when executed by one or moreprocessors, instruct the one or more processors to perform actscomprising: retrieving an existing diagram authentication code and arendering style configuration file; generating a plurality of originalcontexts based on configuration information from the rendering styleconfiguration file; analyzing the plurality of original contexts with apredefined checking rule defining at least one prohibited combination ofat least two of the plurality of original contexts; generating at leastone required context based on analyzing the plurality original contextswith the predefined checking rule; and redrawing a new diagramauthentication code based on the generation of the at least one requiredcontext.
 17. The one or more computer-readable media of claim 16,wherein the at least one required context includes one of a wordcontext, a background context, a paint context, or a font context. 18.The one or more computer-readable media of claim 17, wherein theredrawing the new diagram authentication code based on the at least onerequired context comprises: generating, based on the word context, aword derived from an original word of the existing diagramauthentication code; and generating, based on the background context, abackground diagram derived from an original background context of theexisting diagram authentication code.
 19. The one or morecomputer-readable media of claim 17, wherein the redrawing the newdiagram authentication code based on the at least one required contextcomprises defining, based on the font context, a font derived from anoriginal font of the existing diagram authentication code.
 20. The oneor more computer-readable media of claim 17, wherein the redrawing thenew diagram authentication code based on the at least one requiredcontext comprises generating, based on the paint context, a drawingderived from an original drawing of the existing diagram authenticationcode.
 21. The one or more computer-readable media of claim 16, whereinthe configuration information from the rendering style configurationfile being one of configured by a user through a user interface orpre-configured by a networking server.
 22. The one or morecomputer-readable media of claim 16, wherein the acts further comprisedetermining a predetermining number of failed responses to the newdiagram authentication code.
 23. The one or more computer-readable mediaof claim 22 wherein the acts further comprise modifying the new diagramauthentication code by adding at least one context of the plurality oforiginal contexts based on determining the predetermining number offailed responses to the new diagram authentication code.
 24. A method ofproviding a diagram authentication code comprising: analyzing aplurality of original contexts used to configure a diagramauthentication code with a predefined checking rule defining at leastone prohibited combination of at least two of the plurality of originalcontexts; providing at least one modified context of the plurality oforiginal contexts based on analyzing with the predefined checking rule;restarting a process of configuring the diagram authentication code withthe at least one modified context of the plurality or original contexts;and redrawing a new diagram authentication code based on restarting theprocess of configuring the diagram authentication code with the at leastone modified context of the plurality or original contexts.
 25. Themethod of claim 24, wherein the at least one modified context includesone of a word context, a background context, a paint context, or a fontcontext.
 26. The method of claim 25, wherein the redrawing the newdiagram authentication code based on restarting the process ofconfiguring the diagram authentication code comprises generating, basedon the word context, a word derived from an original word of the diagramauthentication code.
 27. The method of claim 25, wherein the redrawingthe new diagram authentication code based on restarting the process ofconfiguring the diagram authentication code comprises generating, basedon the background context, a background diagram derived from an originalbackground context of the existing diagram authentication code.
 28. Themethod of claim 25, wherein the redrawing the new diagram authenticationcode based on restarting the process of configuring the diagramauthentication code comprises defining, based on the font context, afont derived from an original font of the diagram authentication code.29. The method of claim 25, wherein the redrawing the new diagramauthentication code based on restarting the process of configuring thediagram authentication code comprises generating, based on the paintcontext, a drawing derived from an original drawing of the diagramauthentication code.
 30. The method of claim 24, wherein the actsfurther comprise determining a predetermining number of failed responsesto the new diagram authentication code.
 31. The method of claim 24,wherein the acts further comprise modifying the new diagramauthentication code by adding at least one context of the plurality oforiginal contexts based on determining the predetermining number offailed responses to the new diagram authentication code.
 32. A systemfor generating an authentication code, comprising: one or moreprocessors; and memory to maintain a plurality of components executableby the one or more processors, the plurality of components comprising: acontext generating module configured to generate a plurality of contextsbased on a rendering style configuration file, the plurality of contextscorresponding to the plurality of components, a random word generatingmodule configured to generate a word from a word library based on a wordcontext, a background generating module configured to generate abackground diagram based on a background context, the authenticationcode including the word and the background diagram, a checking moduleconfigured to restart a configuration of at least one of the wordcontext or the background context based on a predefined checking rule,the checking module causing the content generating module to generate anew authentication code based on restarting the configuration; and anoutput interface that outputs the new authentication code based onchecking the authentication code against the predefined checking rule.33. The system of claim 32, wherein the context generating modulereceives configuration information from a rendering style configurationfile being one of configured by a user through a user interface orpre-configured by a networking server
 34. The system of claim 32,wherein the system comprises a server, wherein the server determines apredetermining number of failed responses to the new diagramauthentication code.
 35. The system of claim 34, wherein the serverfurther modifies the new diagram authentication code by adding at leastone context of the plurality of contexts based on determining thepredetermining number of failed responses to the new diagramauthentication code.